package main

import (
	"net/http"
	"net/rpc"
)

// 服务端 求矩形面积

// Rect 矩形结构体
type Rect struct {
}

// Params 参数结构体
type Params struct {
	// 长和宽
	Width  int
	Height int
}

// Area 求矩形面积的函数
func (r *Rect) Area(params Params, ret *int) error {

	*ret = params.Width * params.Height
	return nil
}

// Perimeter 求矩形周长
// params 接收的参数
// ret 返回的参数
func (r *Rect) Perimeter(params Params, ret *int) error {
	*ret = (params.Height + params.Width) * 2
	return nil
}
func main() {
	rect := new(Rect)
	err := rpc.Register(rect) //注册
	// 把服务处理绑定到http协议
	rpc.HandleHTTP()
	//监听客户端调用，求周长
	err = http.ListenAndServe(":8080", nil)
	if err != nil {
		panic(err)
	}
}
